#include "arch.h"
#include "fp_F256PME.h"

namespace F256PME {

/* NUMS 256-bit modulus */


#if CHUNK==16

using namespace B256_13;

// Base Bits= 13
const BIG Modulus= {0x1F43,0x1FFF,0x1FFF,0x1FFF,0x1FFF,0x1FFF,0x1FFF,0x1FFF,0x1FFF,0x1FFF,0x1FFF,0x1FFF,0x1FFF,0x1FFF,0x1FFF,0x1FFF,0x1FFF,0x1FFF,0x1FFF,0x1FF};
const BIG R2modp= {0x900,0x45C,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0};
const chunk MConst= 0xBD;
#endif

#if CHUNK==32

using namespace B256_29;

// Base Bits= 29
const BIG Modulus= {0x1FFFFF43,0x1FFFFFFF,0x1FFFFFFF,0x1FFFFFFF,0x1FFFFFFF,0x1FFFFFFF,0x1FFFFFFF,0x1FFFFFFF,0xFFFFFF};
const BIG R2modp= {0x22E2400,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0};
const chunk MConst= 0xBD;

#endif

#if CHUNK==64

using namespace B256_56;

// Base Bits= 56
const BIG Modulus= {0xFFFFFFFFFFFF43L,0xFFFFFFFFFFFFFFL,0xFFFFFFFFFFFFFFL,0xFFFFFFFFFFFFFFL,0xFFFFFFFFL};
const BIG R2modp= {0x89000000000000L,0x8BL,0x0L,0x0L,0x0L};
const chunk MConst= 0xBDL;

#endif

}
